# TODO 演示 for 循环的使用
# 在 Python 中，for 循环用于迭代序列（例如列表、元组或字符串）或其他可迭代对象（例如字典、集合等）。在本教程中，我将介绍 Python 中的 for 循环及其使用方法.
# 使用 for 循环时的注意事项：
# 必须记住在 for 语句的末尾使用冒号 :，这是 Python 的语法要求。
# for 循环的内部语句块（即循环体）必须缩进。
# 尽量避免在 for 循环中修改你正在迭代的序列，因为这可能会导致意外的行为。如果你需要修改序列，通常最好先复制一份，再对复制后的序列进行修改。
# 如果你需要在 for 循环中同时访问元素和它的索引，可以使用 enumerate() 函数。
# 可以使用 break 语句退出当前循环，使用 continue 语句跳过当前循环的剩余部分并立即开始下一轮循环。
# 可以使用 else 语句块在 for 循环结束后执行一些代码，但这只有在循环正常结束时才会发生，如果循环是由 break 语句退出的，else 语句块不会执行。

# 基本语法
# for item in iterable:
#     do something with item
# 其中，item 表示序列中的当前元素，代码块是需要执行的语句块。在执行 for 循环时，程序会依次取出序列中的每个元素，并将其赋值给变量，然后执行代码块中的语句，直到序列中的所有元素都被遍历完为止。
# 这个例子中，for 循环会依次打印列表 fruits 中的每个元素。
fruits = ["apple", "banana", "cherry"]
for item in fruits:
    print(item)

# 使用 enumerate()：使用 列举
# 在这个例子中，enumerate() 函数提供了一个索引 i 和相应的元素 fruit。
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"The fruit at index {index} is {fruit}.")
# 上述的执行结果如下:
# The fruit at index 0 is apple.
# The fruit at index 1 is banana.
# The fruit at index 2 is cherry.

# 使用 range()：
# range(start, stop, step)
# 其中，start 是生成的数字序列的起始值（默认为0），stop 是生成的数字序列的结束值（不包括该值），step 是生成的数字序列的步长（默认为1）。
# 这个例子中，for 循环会打印数字 0 到 4。range(5) 生成了一个包含五个元素的序列，从 0 开始到 5 - 1。你也可以使用 range(start, stop, step) 来指定开始、结束和步长。
for i in range(5):
    print(i)

# 上面程序的执行结果
# 0
# 1
# 2
# 3
# 4

# 使用 break 和 continue：
# break 和 continue 是两种特殊的语句，可以在循环中使用。它们提供了对循环执行流程更细粒度的控制。
# 使用 break 和 continue 时需要注意，虽然它们提供了对循环流程的强大控制，但过度使用可能会使代码难以理解和维护。尤其是在嵌套循环中，break 只会跳出最内层的循环，而不会结束外层的循环。
# break 语句用于完全跳出当前循环，即提前结束循环。当执行到 break 语句时，循环将立即结束，即使循环条件仍然满足。下面是一个例子：
for i in range(11, 20, 1):
    if i == 15:
        break
    print(i)
# 上述的程序中先生成一个 [11,19]的列表,在遍历这个列表,当遍历的值==15时,程序退出.下面是程序的输出
# 11
# 12
# 13
# 14

# continue 语句用于跳过当前循环的剩余部分，直接开始下一次循环。不同于 break，continue 并不会结束循环，而只是跳过了当前循环的剩余代码。下面是一个例子：
for i in range(10):
    if i % 2 == 0:
        continue  # 当上述的判断成立,则跳过当前循环,例如: i = 0 时, if成立,则跳过当前的i,继续下次循环,到了 i = 1
    print(i)
# 上述程序的执行结果:
# 1
# 3
# 5
# 7
# 9